package com.shujia.jdbc;

import org.junit.Test;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class JdbcDemo1 {



    @Test
    public void getConnection2() throws Exception {
        // 可以把和数据库耦合的配置信息提取到配置文件
//        InputStream is = new FileInputStream("src\\config\\jdbc.properties");
        InputStream is = JdbcDemo1.class.getClassLoader()
                .getResourceAsStream("config\\jdbc.properties");
        Properties pros = new Properties();
        pros.load(is);


        String driverClass = pros.getProperty("driverClass");
        // 加载驱动, 8.0jar 已经实现了SPI自动注册, 不需要手动加载
        Class.forName(driverClass);

        // 获取连接, 每次会创建一个新的连接并返回
        Connection connection = DriverManager.getConnection(pros.getProperty("url"), pros);

        System.out.println(connection);

    }

    @Test
    public void getConnection1() throws Exception {
        // 可以把和数据库耦合的配置信息提取到配置文件
//        InputStream is = new FileInputStream("src\\config\\jdbc.properties");
        InputStream is = JdbcDemo1.class.getClassLoader()
                .getResourceAsStream("config\\jdbc.properties");
        Properties pros = new Properties();
        pros.load(is);


        String url = pros.getProperty("url");
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        // String driverClass = pros.getProperty("driverClass");

        // 加载驱动, 8.0jar 已经实现了SPI自动注册, 不需要手动加载
        // Class.forName(driverClass);

        // 获取连接
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);

    }


    @Test
    public void getConnection() throws Exception {
        // jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数=值&参数=值
        String url = "jdbc:mysql://localhost:3306/bigdata";
        String user = "root";
        String password = "root";

        /*
        加载驱动, 你要操作的是哪一种数据, 需要告诉Java环境
         如果操作的是Mysql数据库, 这里就需要加载Mysql给我们提供的驱动
         驱动就是 java.sql.Driver 接口的实现类
         com.mysql.cj.jdbc.Driver mysql的驱动, 此时和Mysql数据库产生耦合
         如果要切换数据库, 需要修改Java代码
         */
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 获取连接
        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);

    }


}
